#!/usr/bin/perl
################################################################################
# Common functions.
################################################################################

use strict;
use warnings;
use English;
use File::Basename;
use File::Find;



################################################################################
# Deletes all files in output folders under the folder passed as argument.
# Also deletes USX files if there is a non-empty UsfmInput\input folder,
# since we will be generating the USX files from USFM.

sub deleteOutputFiles
{
  find (\&deleteOutputFile, $_[0]);
  if (checkForUsfmInput($_[0])) { find (\&deleteUsxFiles, $_[0]); }
}


################################################################################
# Checks if we have anything in the UsfmInput folder (returns 1 if we do).

sub checkForUsfmInput
{
  eval { find (\&_checkForUsfmInput, $_[0]); };
  if ($@) { return 1; }
  return 0;
}


################################################################################
# Deletes all files under output folders.

sub deleteOutputFile
{
  my $path = $File::Find::name;
  if (-f $path)
  {
    if ($path =~ /.*\W+output\W+.*/) { unlink $path; }
  }
}


################################################################################
# Delete all files in the Usx folder (intended for use where we also have USFM
# input files, and will therefore be generating USX from these).

sub deleteUsxFiles
{
  my $path = $File::Find::name;
  if (-f $path)
  {
    if ($path =~ /.*\W+Usx\W+.*/) { unlink $path; }
  }
}




################################################################################
# Get the operating system name in canonical form for use in the SIL
# conversion and validation utilies.

sub getOperatingSystem
{
  if ("mswin32" eq lc($OSNAME))  { return "Windows"; }
  elsif ("linux" eq lc($OSNAME)) { return "Linux"; }
  else { return "Mac"; }
}





################################################################################
################################################################################
################################################################################
################################################################################
################################################################################

################################################################################
sub _checkForUsfmInput
{
  my $path = $File::Find::name;
  if ($path =~ /UsfmInput.*input.*sfm$/i) { die 1; }
}

1;
